﻿Imports System.Windows.Forms
Imports DNP.GestionComercial.BE
Imports DNP.GestionComercial.BL
Imports DNP.GestionComercial.Util
Imports DNP.GestionComercial.FormBase

Public Class frmManAgencia

    Inherits DNP.GestionComercial.FormBase.frmFormBase

#Region "Declaracion de Variables"

    Dim oMsg As New sisMensaje
    Dim _frmManteRepresentantes As DNP.GestionComercial.FRM.frmMantRepresentantes

#End Region

#Region "Iniciar Pagina"

    Public Sub New()
        ' Llamada necesaria para el diseñador.
        InitializeComponent()
        lblTitulo.Text = "Mantenimiento de Agencias"
        Me.tbpLista.Text = "Lista de Agencias"
        InicializarControles()

        Listar()
    End Sub

    Private Sub InicializarControles()

        Dim obeRespuesta As New RespuestaBE
        Dim lstParametrica As New List(Of ParametricaBE)
        Dim lstCargo As New List(Of ParametricaBE)
        Dim oblParametrica As New ParametricaBL
        txtCodigo.Enabled = False
        gbxEntidad.Visible = True
        txtEntidad.Visible = True
        txtEntidad.Enabled = True

        lblEntidad.Visible = True
        lblEntidad.Text = "Agencia"

        Dim oblUbigeo As New UbigeoBL
        Dim lstDepartamentos As New List(Of UbigeoBE)
        sisFunciones.Carga_ComboFromEnum(cmbEstado, GetType(sisEnum.EstadoBD))

        obeRespuesta = oblUbigeo.ObtenerDepartamentos()
        If obeRespuesta.Respuesta Then
            lstDepartamentos = CType(obeRespuesta.ValorRertono, List(Of UbigeoBE))
            sisFunciones.Load_Combo(cmbDepartamento, lstDepartamentos, "UGEO_DEPARTAMENTO", "UGEO_NOMBRE", False, "00")
        Else
            oMsg.showMsgWarning(obeRespuesta.Mensaje)

        End If

    End Sub

#End Region

#Region "Funciones"

    Private Sub FormatGrid()

        grdLista.AutoGenerateColumns = False
        grdLista.Columns.Clear()
        grdLista.Columns.Add("NAGE_CODIGO", "Código")
        grdLista.Columns.Add("NAGE_NOMBRE", "Nombre")
        grdLista.Columns.Add("REPRESENTANTE", "Representante")
      
        grdLista.Columns(0).DataPropertyName = "NAGE_CODIGO"
        grdLista.Columns(1).DataPropertyName = "NAGE_NOMBRE"
        grdLista.Columns(2).DataPropertyName = "REPRESENTANTE"

        grdLista.Columns(0).Width = 60
        grdLista.Columns(1).Width = 80
        grdLista.Columns(2).Width = 100

        grdLista.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        grdLista.Columns(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter

        grdLista.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        grdLista.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter

        grdLista.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        grdLista.Columns(2).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter

    End Sub

    Private Sub LimpiarControles()

        limpiarControlesForm(Me)
        'cmbDepartamento.SelectedValue = "00"
        'cmbProvincia.SelectedValue = "00"
        'cmbDistrito.SelectedValue = "00"

    End Sub

#End Region

#Region "Accion Botones"

    Protected Overrides Sub tsbSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Me.Close()
    End Sub

    Protected Overrides Sub tsbListar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Listar()
    End Sub

    Protected Overrides Sub tsbNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

        LimpiarControles()
        tbcMantenimiento.SelectedIndex = 1
        cmbEstado.SelectedIndex = 1
        tsbGuardar.Visible = True
    End Sub

    Protected Overrides Sub tsbGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

        If validar() Then

            If oMsg.showMsgQuestion("msgQuestionGuardar") = DialogResult.Yes Then
                Guardar()
            End If

        End If

    End Sub

    Protected Overrides Sub grdLista_Click(ByVal sender As Object, ByVal e As System.EventArgs)

        LlenaDetalle(0)

    End Sub

    Protected Overrides Sub tsbAbrir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

    End Sub

    Protected Overrides Sub tsbEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

        Dim intFila
        If grdLista.RowCount = 0 Then
            Return
        End If
        Try
            If grdLista.Rows(0).Cells(0).Value.ToString().Trim() Is Nothing Or _
                grdLista.Rows(0).Cells(0).Value.ToString().Trim() = "0" Then
                Return
            End If
        Catch ex As Exception
            Return
        End Try
        intFila = grdLista.CurrentRow.Index
        If intFila <> -1 Then
            If grdLista.Rows(intFila).Selected Then
                Dim codigo As Integer = CType(grdLista.Rows(intFila).Cells(0).Value.ToString().Trim(), Integer)

                If (oMsg.showMsgQuestion("msgQuestionDelete") = DialogResult.Yes) Then
                    Eliminar(codigo)
                End If
            End If
        End If

    End Sub

#End Region

#Region "Operaciones"

    Private Sub Listar()

        Dim oRespuesta As New RespuestaBE
        Dim lst As New List(Of AgenciaBE)
        Dim oParametro As New PARAMETROBE

        oParametro.PARAMETRO01 = txtEntidad.Text
        oRespuesta = New AgenciaBL().ListarTodos(oParametro)

        If oRespuesta.Respuesta Then

            FormatGrid()
            grdLista.DataSource = oRespuesta.ValorRertono 'olstEntidad
            grdLista.Refresh()

        Else
            oMsg.showMsgWarning(oRespuesta.Mensaje)
            MsgBox(oRespuesta.Mensaje)

        End If

    End Sub

    Private Function validar() As Boolean
        Return True
    End Function

    Private Sub Guardar()

        Dim obeEntidad As New AgenciaBE
        If Trim(txtCodigo.Text) = "" Then
            obeEntidad.NAGE_CODIGO = 0
        Else
            obeEntidad.NAGE_CODIGO = CInt(txtCodigo.Text)
        End If
        With obeEntidad

            .CAGE_NOMBRE = txtNombre.Text
            .REPRESENTANTE = txtCodRepresentante.Text
            .CAGE_DIRECCION = txtDireccion.Text
            .CAGE_UBIGEO = cmbDepartamento.SelectedValue + cmbProvincia.SelectedValue + cmbDistrito.SelectedValue
            .CAGE_ESTADO = cmbEstado.SelectedValue
        End With

        If (objListaError.intNumError > 0) Then
            showError()
            objListaError.intNumError = 0
        Else

            Dim orespuesta As New RespuestaBE
            orespuesta = New AgenciaBL().Guardar(obeEntidad, "U60546")
            If orespuesta.Respuesta Then
                txtCodigo.Text = orespuesta.Mensaje
                oMsg.showMsgInformation("msgExitoGuardar")
                Listar()
                tbcMantenimiento.SelectedIndex = 0
            Else
                oMsg.showMsgWarning("msgErrorGuardar")
            End If

        End If



    End Sub

    Private Sub Eliminar(ByVal codigo As Integer)

        Dim oParametro As New PARAMETROBE
        Dim oRespuesta As New RespuestaBE

        oParametro.PARAMETRO01 = codigo
        Dim usuario As String = "U60546"

        oRespuesta = New AgenciaBL().Eliminar(oParametro, usuario)

        If oRespuesta.Respuesta Then
            txtCodigo.Text = oRespuesta.Mensaje
            oMsg.showMsgInformation("msgExitoEliminar")
            Listar()
            tbcMantenimiento.SelectedIndex = 0

        Else
            oMsg.showMsgWarning("msgErrorEliminar")

        End If

    End Sub

    Private Sub LlenaDetalle(ByVal intTab As Integer)

        LimpiarControles()
        Dim intFila As Integer = -1
        If grdLista.RowCount = 0 Then
            Return
        End If
        intFila = grdLista.CurrentRow.Index
        If intFila <> -1 Then
            If grdLista.Rows(intFila).Selected Then
                If intTab >= 0 Then
                    tbcMantenimiento.SelectedIndex = intTab
                    txtCodigo.Text = grdLista.Rows(intFila).Cells(0).Value.ToString().Trim()
                    Obtener(txtCodigo.Text)
                    tsbGuardar.Visible = True
                End If
            End If
        End If

    End Sub

    Private Sub Obtener(ByVal codigo As String)
        If codigo <> "0" Then
            Dim oRespuesta As New RespuestaBE
            Dim obeEntidad As New AgenciaBE
            oRespuesta = New AgenciaBL().Obtener(codigo)
            If oRespuesta.Respuesta Then
                obeEntidad = CType(oRespuesta.ValorRertono, AgenciaBE)

                With obeEntidad
                    txtCodigo.Text = CStr(.NAGE_CODIGO)
                    txtNombre.Text = .CAGE_NOMBRE
                    txtDireccion.Text = .CAGE_DIRECCION
                    Try
                        cmbDepartamento.SelectedValue = .CAGE_UBIGEO.Substring(0, 2)
                    Catch ex As Exception
                        cmbDepartamento.SelectedValue = "00"
                    End Try
                    Try
                        cmbProvincia.SelectedValue = .CAGE_UBIGEO.Substring(2, 2)
                    Catch ex As Exception
                        cmbProvincia.SelectedValue = "00"
                    End Try
                    Try
                        cmbDistrito.SelectedValue = .CAGE_UBIGEO.Substring(4, 2)
                    Catch ex As Exception
                        cmbDistrito.SelectedValue = "00"
                    End Try

                    cmbEstado.SelectedValue = .CAGE_ESTADO
                End With
            End If
        End If
    End Sub
#End Region

#Region "Eventos de Controles"








#End Region


    
    
    Private Sub cmbDepartamento_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbDepartamento.SelectedIndexChanged

    End Sub

    Private Sub cmbProvincia_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbProvincia.SelectedIndexChanged

    End Sub

    Private Sub txtCodRepresentante_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtCodRepresentante.KeyDown
        If e.KeyValue = sisEnum.TeclasComunes.AbrirFormBusqueda Then
            Dim frm As New frmBusEmpleado(Me)
            frm.Owner = Me
            frm.ShowDialog()

            If (frm.DialogResult = Windows.Forms.DialogResult.OK) Then
                txtCodRepresentante.Text = frm.vRespuesta.PARAMETRO01
                txtResponsable.Text = frm.vRespuesta.PARAMETRO02
            End If

        End If
    End Sub
End Class